package com.dudu.service.impl;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;

import com.dudu.bean.AccountBean;
import com.dudu.bean.AppExtendBean;
import com.dudu.service.IAccountExtendService;
import com.dudu.service.IAccountManageService;
import com.dudu.service.IOperationPlatformService;
import com.dudu.timer.SendAccountHandleThread;
import com.dudu.utils.DictionaryUtils;
import com.dudu.utils.EnumUtility;
import com.dudu.utils.MD5Utils;
import com.dudu.utils.ThreadPoolUtils;

/**
 * 账号相关操作
 * 
 * @author 危东
 * @date 2016-4-20
 */
public class AccountManageServiceImpl implements IAccountManageService {
	// 运营平台相关操作
	private IOperationPlatformService operationPlatformService = new OperationPlatformServiceImpl();
	// 日志输出
	private static final Logger log = Logger.getLogger(AccountManageServiceImpl.class.getSimpleName());
	private IAccountExtendService accountExtendServcie = new AccountExtendServiceImpl();
	final String importCallMessage=DictionaryUtils.getValueByTypeAndKey("platform", "importCallMessage");
	
	/**
	 * 7.1.1	账号信息列表接口
  	 * H5页面在注册前，H5页面输入“关联码”、关联手机号等然后调用此接口。
     * 返回与关联码一致的所有账号，让用户进行选择。
     *  6.38　由关联关系查询计费账号信息列表接口
	 * @param periphery_code  外围系统编码
	 * @param mobile 手机号码
	 * @param relatedCode 嘟嘟关联账号
	 * @return
	 */
	public JSONObject queryCustAccountByRelateInfo(String periphery_code,String mobile,String relatedCode){
		return operationPlatformService.queryCustAccountByRelateInfo(periphery_code, mobile, relatedCode);
	}
	/**
	 * 6.47　更新关联关系并查询计费账号信息列表接口
	 * 更新关联码,并返回账号列表
	 * @param cust_account  客户账号
	 * @param app_key   app_key
	 * @param mobilePhone  //管理员手机号
	 * @param channel_account  //渠道码
	 * @param relatedCode  //嘟嘟关联账号
	 * @param periphery_code  外系统编码
	 * @return
	 */
	public JSONObject updQueryCustAccountByRelateInfo(String cust_account,String app_key,String mobilePhone,String channel_account,String relatedCode,String periphery_code,String email){
		return operationPlatformService.updQueryCustAccountByRelateInfo(cust_account, app_key, mobilePhone, channel_account, relatedCode, periphery_code,email);
	}
	/**
	 * 
	 *  7.1.2	账号注册接口（强制合并）
  	 *	客户调用此接口，只要是关联码一致的账号全部合成一个新的账号。
  	 *	返回：主账号信息，副账号信息（被合并的账号）
	 *	6.42　授权账号注册（强制合并T）接口
	 * @param periphery_code 外系统编码
	 * @param company_identify 企业（个人）标识
	 * @param email  邮箱
	 * @param relevancePhone 关系手机号
	 * @param app_key  应用标识
	 * @param channelAccount 渠道码
	 * @param companyName 企业名称
	 * @param linker 联系人
	 * @param relatedCode 关联码
	 * @param statusUrl 状态推送地址
	 * @param recordUrl 话单推送地址
	 * @param ivrdigitUrl IVR推送地址
	 * @param appExtendBean 
	 * @return
	 */
	public JSONObject OauthCombineForceInterface(String periphery_code,String company_identify,String email,String relevancePhone,String app_key,String channelAccount,String companyName,String linker,String relatedCode,String statusUrl,String recordUrl,String ivrdigitUrl,AppExtendBean appExtendBean){
		JSONObject result=operationPlatformService.OauthCombineForceInterface(periphery_code, company_identify, email, relevancePhone, app_key, channelAccount, companyName, linker, relatedCode);
		if(result.getString("result").equals("0")){
			//获取推送列表
			JSONArray data=result.getJSONArray("data");
			//线程把accounts进行处理
			//1、更新主cust_account的几个URL，把副账号的URL送到主的上。
			//2、根据副账号对应的app_key得到推送地址，进行推送
			//3、失败，入库等JOB执行
			//4、成功，入库留做记录
			SendAccountHandleThread accountThreadinfo = new SendAccountHandleThread(accountExtendServcie,data);
			ThreadPoolUtils.getThreadPoolUtils().getExecutorService().execute(accountThreadinfo);
			
			//获取主账号信息
			String custAccount="";
			for(int i=0;i<data.size();i++){
				JSONObject cust=data.getJSONObject(i);
				if(EnumUtility.isNotBlank(cust.getString("is_lord_account")) && cust.getString("is_lord_account").equals("1")){
					custAccount=cust.getString("cust_account");
				}
			}
			// 运营平台注册成功后，开始存储嘟嘟能力本地附加数据或者更新数据
			this.insertAccount(result, custAccount, linker, relevancePhone, email, statusUrl, recordUrl, ivrdigitUrl, appExtendBean);
		}
		return result;
	}
	
	/**
	 * 7.1.3	账号注册接口（普通注册，不合并）
  	 * 用户选择不进行合并账号，想生成一个新的账号。
  	 *	返回：账号注册信息
 	 *	6.5　授权认证接口
	 * 运营平台接口
	 * @param appExtendBean App相关信息
	 * @param appKey 应用key
	 * @param peripheryCode 系统接入码
	 * @param companyIdentify 企业编码
	 * @param relevanceCode 账号关联码
	 * @param relevancePhone 手机号
	 * @param channelAccount 渠道码
	 * @param companyName 企业名称
	 * @param linker 联系人姓名
	 * @param email 邮箱
	 * @param statusUrl 状态推送地址
	 * @param recordUrl 话单推送地址
	 * @param ivrdigitUrl IVR推送地址
	 * @return
	 */
	@Override
	public JSONObject accountRegiste(AppExtendBean appExtendBean,String appKey, String peripheryCode, String companyIdentify,
			String relevanceCode, String relevancePhone, String channelAccount,String companyName, String linker, String email, String statusUrl,
			String recordUrl, String ivrdigitUrl) {
		log.info("AccountManageServiceImpl.accountRegiste 账号注册");
		// 用于后期返回值
		JSONObject object = new JSONObject();
		// 先到运营平台注册账号
		String custAccount = "";
		try {
			// 到运营平台注册，并获取返回的账号标识
			custAccount = operationPlatformService.accountRegiste(object,appKey, peripheryCode, companyIdentify, relevanceCode,relevancePhone, channelAccount, companyName, linker, email);
			// 判断注册是否成功，如果不成功则报错跳出
			if (StringUtils.isBlank(custAccount)) {
				object.put("result", "-1");
				object.put("errorMsg", "注册企业失败:"+object.optString("describe"));
				object.put("describe", "计费账号注册异常");
				object.put("code", "0101");
				return object;
			} else {
				// 注册成功后，开始订购相关
				// 创建订购关系由运营平台处理
				if (!operationPlatformService.platformOrder(object, appKey,custAccount)) {
					object.put("errorMsg", "运营平台创建订购关系失败");
					object.put("describe", "计费账号注册异常");
					object.put("code", "0101");
					return object;
				}else{
					// 运营平台注册成功后，开始存储嘟嘟能力本地附加数据
					this.insertAccount(object, custAccount, linker, relevancePhone, email, statusUrl, recordUrl, ivrdigitUrl, appExtendBean);
				}
				
			}
			
		} catch (Exception e) {
			log.error("AccountManageServiceImpl.accountRegiste 账号注册异常" + e);
			object.put("result", "-1");
			object.put("errorMsg", "账号注册内部发生异常" + e);
			object.put("describe", "计费账号注册异常");
			object.put("code", "0101");
		}
		return object;
	}
	/**
	 * 7.2.0 合并计费账户接口
	 * @param app_key
	 * @param cust_account
	 * @param accounts
	 * @return
	 */
	public JSONObject CombineCustAccount(String app_key,String cust_account,JSONArray accounts){
		JSONArray array=new JSONArray();
		for(int i=0;i<accounts.size();i++){
			JSONObject object=accounts.getJSONObject(i);
			JSONObject object2=new JSONObject();
			object2.put("combine_cust_account", object.getString("cust_account"));
			array.add(object2);
		}
		//
		JSONObject response= operationPlatformService.CombineCustAccount(cust_account, array);
		if(response.getString("result").equals("0")){
			JSONObject dataJsonObject=new JSONObject();
			AccountBean bean=accountExtendServcie.queryAccountDetailByCustAccount(cust_account);
			if(null!=bean ){
				dataJsonObject.put("org_permKey", EnumUtility.trimNumm(bean.getKey_public()));
				dataJsonObject.put("org_tempKey", EnumUtility.trimNumm(bean.getKey_private()));
			}else{
				dataJsonObject.put("org_permKey", "");
				dataJsonObject.put("org_tempKey", "");
			}
			dataJsonObject.put("cust_account", cust_account);
			response.put("data", dataJsonObject);
			
			JSONArray accountArray=response.getJSONArray("dataJSON");
			
			//线程把accounts进行处理
			//1、更新主cust_account的几个URL，把副账号的URL送到主的上。
			//2、根据副账号对应的app_key得到推送地址，进行推送
			//3、失败，入库等JOB执行
			//4、成功，入库留做记录
			log.info("推送数据------------"+accountArray.toString());
			if(null !=accountArray){
				SendAccountHandleThread accountThreadinfo = new SendAccountHandleThread(accountExtendServcie,accountArray);
				ThreadPoolUtils.getThreadPoolUtils().getExecutorService().execute(accountThreadinfo);
			}
			response.remove("dataJSON");
		}
		return response;
	}
	/**
	 * 
	 * 7.1.4	账号合并接口(OK)
  	 *   用户选择完主账号，副账号（被合并的账号）调用此接口进行合并操作。
  	 *   6.44　授权账号注册（合并）接口
	 * @param periphery_code 外围系统编码
	 * @param app_key  应用标识
	 * @param company_identify
	 * @param channelAccount 渠道码
	 * @param relatedCode 账号关联码
	 * @param cust_account 主账号
	 * @param accounts 被合并账号此为JSONArray(combine_cust_account)
	 * @return
	 */
	public JSONObject OauthCombineInterface(String periphery_code,String app_key,String company_identify,String channelAccount,String relatedCode,String cust_account,JSONArray accounts ){
		JSONArray array=new JSONArray();
		for(int i=0;i<accounts.size();i++){
			JSONObject object=accounts.getJSONObject(i);
			JSONObject object2=new JSONObject();
			object2.put("combine_cust_account", object.getString("cust_account"));
			array.add(object2);
		}
	
		JSONObject response= operationPlatformService.OauthCombineInterface(periphery_code, app_key,company_identify, channelAccount,  relatedCode, cust_account, array);
		if(response.getString("result").equals("0")){
			//设置返回值
			JSONObject dataJsonObject=response.getJSONObject("data");
			AccountBean bean=accountExtendServcie.queryAccountDetailByCustAccount(cust_account);
			if(null!=bean ){
				dataJsonObject.put("org_permKey", EnumUtility.trimNumm(bean.getKey_public()));
				dataJsonObject.put("org_tempKey", EnumUtility.trimNumm(bean.getKey_private()));
			}else{
				dataJsonObject.put("org_permKey", "");
				dataJsonObject.put("org_tempKey", "");
			}
			dataJsonObject.remove("user_account");
			dataJsonObject.remove("is_first_oauth");
			
			response.remove("data");
			response.put("data", dataJsonObject);
			
			JSONObject obj=new JSONObject();
			obj.put("cust_account", cust_account);
			obj.put("app_key", app_key);
			obj.put("is_lord_account", "1");
			accounts.add(obj);
			//线程把accounts进行处理
			//1、更新主cust_account的几个URL，把副账号的URL送到主的上。
			//2、根据副账号对应的app_key得到推送地址，进行推送
			//3、失败，入库等JOB执行
			//4、成功，入库留做记录
			SendAccountHandleThread accountThreadinfo = new SendAccountHandleThread(accountExtendServcie,accounts);
			ThreadPoolUtils.getThreadPoolUtils().getExecutorService().execute(accountThreadinfo);

		}
		return response;
	}
	/**
	 *  7.1.6	账号信息更新接口（强制合并）
   	 *	客戾调用更新接口时输入关联码，强制把关联码一致的账号全部合成一个新的账号。
   	 *	返回：主账号信息，副账号信息（被合并的账号）
   	 *	6.43　客户信息修改（强制合并T）接口
   	 * @param appkey 应用标识
   	 * @param periphery_code 外系统编码
   	 * @param cust_account 客户账号
	 * @param email //管理员账号邮箱
	 * @param relevancePhone //管理员手机号
	 * @param channelAccount //渠道码
	 * @param companyName //企业名称
	 * @param linker
	 * @param relatedCode //嘟嘟关联账号
	 * @param statusUrl 状态推送地址
	 * @param recordUrl 话单推送地址
	 * @param ivrdigitUrl IVR推送地址
	 * @return
	 */
	public JSONObject UpdateCustomerForceInfo(String appkey,String periphery_code,String cust_account,String email,String relevancePhone,String channelAccount,String companyName,String linker,String relatedCode, String statusUrl, String recordUrl, String ivrdigitUrl){
		
		JSONObject result=operationPlatformService.UpdateCustomerForceInfo(appkey,cust_account, email, relevancePhone, channelAccount, companyName, relatedCode);
		if(result.getString("result").equals("0")){
			AccountBean bean=accountExtendServcie.queryAccountDetailByCustAccount(cust_account);
			bean.setUrl_ticket(EnumUtility.replaceUrl(bean.getUrl_ticket(), recordUrl, "0"));
			bean.setUrl_callstatus(EnumUtility.replaceUrl(bean.getUrl_callstatus(), statusUrl, "0"));
			bean.setUrl_ivrdigit(EnumUtility.replaceUrl(bean.getUrl_ivrdigit(), ivrdigitUrl, "0"));
			bean.setLinker_name(linker);
			bean.setLinker_email(email);
			bean.setLinker_phone(relevancePhone);
			accountExtendServcie.updateAccountExtend(bean);
			//线程把accounts进行处理
			//1、更新主cust_account的几个URL，把副账号的URL送到主的上。
			//2、根据副账号对应的app_key得到推送地址，进行推送
			//3、失败，入库等JOB执行
			//4、成功，入库留做记录
			JSONArray data=result.getJSONArray("data");
			SendAccountHandleThread accountThreadinfo = new SendAccountHandleThread(accountExtendServcie,data);
			ThreadPoolUtils.getThreadPoolUtils().getExecutorService().execute(accountThreadinfo);
			//设置返回值
			JSONObject dataJsonObject=new JSONObject();
			dataJsonObject.put("org_permKey", EnumUtility.trimNumm(bean.getKey_public()));
			dataJsonObject.put("org_tempKey", EnumUtility.trimNumm(bean.getKey_private()));
			dataJsonObject.put("app_key", appkey);
			dataJsonObject.put("periphery_code", periphery_code);
			dataJsonObject.put("cust_account", cust_account);
			result.put("data", dataJsonObject);
		}
		return result;
	}
	/**
	 * 7.1.7	账号信息更新接口（普通更新，不合并）
   	 *	信息账号的基本信息。
   	 *	返回：账号基本信息
     *	6.13　客户信息修改接口
	 * @param cust_account 客户账号
	 * @param email //管理员账号邮箱
	 * @param relevancePhone //管理员手机号
	 * @param channelAccount //渠道码
	 * @param companyName //企业名称
	 * @param linker
	 * @param relatedCode //嘟嘟关联账号
	 * @param statusUrl 状态推送地址
	 * @param recordUrl 话单推送地址
	 * @param ivrdigitUrl IVR推送地址
	 * @return
	 */
	public JSONObject UpdateCustomerInfo(String cust_account,String email,String relevancePhone,String channelAccount,String companyName,String linker,String relatedCode,String statusUrl, String recordUrl, String ivrdigitUrl){
		JSONObject result=new JSONObject();
		//嘟嘟关联账号
		if(EnumUtility.isBlank(relatedCode)){//嘟嘟关联账号为空则修改普通信息
			result=operationPlatformService.UpdateCustomerInfo(cust_account, email, relevancePhone, channelAccount, companyName);
		}else{//嘟嘟关联账号不为空,则为修改合并.
			result=operationPlatformService.UpdateCustomerCombineInfos(cust_account, email, relevancePhone, channelAccount, companyName, relatedCode);
		}
		//返回成功后需要更新扩展表
		if(result.getString("result").equals("0")){
			AccountBean bean=accountExtendServcie.queryAccountDetailByCustAccount(cust_account);
			bean.setLinker_name(linker);
			bean.setLinker_email(email);
			bean.setLinker_phone(relevancePhone);
			bean.setUrl_ticket(EnumUtility.replaceUrl(bean.getUrl_ticket(), recordUrl,"0"));
			bean.setUrl_callstatus(EnumUtility.replaceUrl(bean.getUrl_callstatus(), statusUrl,"0"));
			bean.setUrl_ivrdigit(EnumUtility.replaceUrl(bean.getUrl_ivrdigit(), ivrdigitUrl,"0"));
			int res=accountExtendServcie.updateAccountExtend(bean);
			if(res==-1){
				result.put("result", "-1");
				result.put("code", "0105");
				result.put("describe", "更新数据失败");
			}else{
//				if(EnumUtility.isNotBlank(relatedCode))	{
//					//线程把accounts进行处理
//					//1、更新主cust_account的几个URL，把副账号的URL送到主的上。
//					//2、根据副账号对应的app_key得到推送地址，进行推送
//					//3、失败，入库等JOB执行
//					//4、成功，入库留做记录
//					JSONArray data=result.getJSONArray("data");
//					SendAccountHandleThread accountThreadinfo = new SendAccountHandleThread(accountExtendServcie,data);
//					ThreadPoolUtils.getThreadPoolUtils().getExecutorService().execute(accountThreadinfo);
//					result.remove("data");
//				}
				JSONObject datajson=new JSONObject();
				datajson.put("cust_account", cust_account);
				datajson.put("org_permKey", EnumUtility.trimNumm(bean.getKey_public()));
				datajson.put("org_tempKey", EnumUtility.trimNumm(bean.getKey_private()));
				result.put("data", datajson);
			}
				
		}
		
		return result;
	}
	/**
	 * 新增账号扩展信息
	 * @param object
	 * @param custAccount
	 * @param linker
	 * @param relevancePhone
	 * @param email
	 * @param statusUrl
	 * @param recordUrl
	 * @param ivrdigitUrl
	 * @param appExtendBean
	 */
	private void insertAccount(JSONObject object,String custAccount,String linker,String relevancePhone,String email,String statusUrl,String recordUrl,String ivrdigitUrl,AppExtendBean appExtendBean){
		AccountBean accountBean=accountExtendServcie.queryAccountDetailByCustAccount(custAccount);
		JSONObject accountObject=new JSONObject();
		int result=-1;
		if(null==accountBean){
			// 生成公钥
			String key_public = MD5Utils.getMd5Value();
			// 生成私钥
			String key_private = MD5Utils.getMd5Value();
			// 传入数据实体类
			accountBean = new AccountBean();
			accountBean.setAccount_identify("");
			accountBean.setCust_account(custAccount);// custAccount账户标识
			accountBean.setKey_public(key_public);// 公钥
			accountBean.setKey_private(key_private);// 私钥
			accountBean.setLinker_name(EnumUtility.trimNumm(linker));// 联系人姓名
			accountBean.setLinker_phone(EnumUtility.trimNumm(relevancePhone));// 联系人电话
			accountBean.setLinker_email(email);
			accountBean.setBilling_platform(appExtendBean.getBilling_platform());
			accountBean.setCreate_user("");
			
			// 判断如果recordUrl是否为空
			if (StringUtils.isBlank(recordUrl)) {
				// 如果传入为空，则使用app配置
				recordUrl = appExtendBean.getUrl_ticket();
			}else{
				if(!recordUrl.contains(importCallMessage)){
					recordUrl=recordUrl+","+importCallMessage;
				}
			}
			
			accountBean.setUrl_ticket(EnumUtility.trimNumm(recordUrl));
			// 判断如果statusUrl是否为空
			if (StringUtils.isBlank(statusUrl)) {
				// 如果传入为空，则使用app配置
				statusUrl = appExtendBean.getUrl_callstatus();
			}
			accountBean.setUrl_callstatus(EnumUtility.trimNumm(statusUrl));
			accountBean.setUrl_authentication(EnumUtility.trimNumm(appExtendBean.getUrl_authentication()));
			// 判断如果ivrdigitUrl是否为空
			if (StringUtils.isBlank(ivrdigitUrl)) {
				// 如果传入为空，则使用app配置
				ivrdigitUrl = appExtendBean.getUrl_ivrdigit();
			}
			accountBean.setUrl_sms(appExtendBean.getUrl_sms());
			accountBean.setUrl_record(appExtendBean.getUrl_record());
			accountBean.setUrl_ivrdigit(EnumUtility.trimNumm(ivrdigitUrl));
			accountBean.setUrl_infocontrol(appExtendBean.getUrl_infocontrol());
			
			accountObject = accountExtendServcie.insertAccountExtend(accountBean);
			if(accountObject.get("result").equals("0")){
				result=0;
			}
		}else{
			//accountBean.setAccount_identify("");
			accountBean.setLinker_name(EnumUtility.trimNumm(linker));// 联系人姓名
			/**
			 * qinfx 2016-09-10 重复注册时不更新联系人电话，
			 * 此电话用于在线电话主叫号码使用，避免被修改
			 */
			//accountBean.setLinker_phone(relevancePhone);// 联系人电话
			accountBean.setLinker_email(email);
			// 判断如果recordUrl是否为空
			if (StringUtils.isNotBlank(recordUrl)) {
				accountBean.setUrl_ticket(EnumUtility.replaceUrl(accountBean.getUrl_ticket(), recordUrl, "0"));
			}
			// 判断如果statusUrl是否为空
			if (StringUtils.isNotBlank(statusUrl)) {
				accountBean.setUrl_callstatus(EnumUtility.replaceUrl(accountBean.getUrl_callstatus(), statusUrl, "0"));
			}
			// 判断如果ivrdigitUrl是否为空
			if (StringUtils.isNotBlank(ivrdigitUrl)) {
				accountBean.setUrl_ivrdigit(EnumUtility.replaceUrl(accountBean.getUrl_ivrdigit(), ivrdigitUrl, "0"));
			}
			result=accountExtendServcie.updateAccountExtend(accountBean);
		}
		JSONObject dataObject = new JSONObject();
		dataObject.put("app_key", appExtendBean.getApp_key());
		dataObject.put("cust_account", custAccount);
		dataObject.put("org_permKey", accountBean.getKey_public());
		dataObject.put("org_tempKey", accountBean.getKey_private());
		dataObject.put("periphery_code", appExtendBean.getPeriphery_code());
		if(result!=-1){
			object.put("result", "0");
			object.put("describe", "账号注册成功");
			object.put("code", "0000");
			object.put("data", dataObject);
		}else{
			object.put("result", "0");
			object.put("errorMsg", "账号注册成功，同步失败");
			object.put("describe", "账号注册成功");
			object.put("code", "0000");
			object.put("data", dataObject);
		}
	}
	
	/**
	 * 查询账号(企业 )信息
	 * @param page_no 当前页
	 * @param pageSize 一页显示多少条
	 * @param isv_name ISV名称
	 * @param app_name 应用名称
	 * @param cust_account 账号标识
	 * @return JSONObject(totalItemNum,items)
	 */
	public JSONObject queryAll(Integer page_no, Integer pageSize,String isv_name,String app_name,String cust_account){
		JSONObject object=new JSONObject();
		JSONObject response=this.queryItems(page_no, pageSize, isv_name, app_name,  cust_account);
		if(EnumUtility.isBlank(response) || ! response.containsKey("data")){
			object.put("totalItemNum", 0);
			object.put("items", null);
			return object;
		}
		JSONArray items=response.getJSONArray("data");
		if(null!=items){
			for(int i=0;i<items.size();i++){
				JSONObject obj=items.getJSONObject(i);
				String custAccount=obj.getString("cust_account");
				AccountBean bean=accountExtendServcie.queryAccountDetailByCustAccount(custAccount);
				if(null==bean){
					obj.put("isHasExtend", false);
				}else{
					obj.put("isHasExtend", true);
				}
				
			}
			object.put("totalItemNum", Integer.parseInt(response.getString("totalNums")));
			object.put("items", items);
		}else{
			object.put("totalItemNum", 0);
			object.put("items", null);
		}
		return object;
	}
	/**
	 * 查询账号(企业 )信息接口
	 * @param page_no 当前页
	 * @param pageSize 一页显示多少条
	 * @param isv_name ISV名称
	 * @param app_name 应用名称
	 * @param cust_account 账号标识
	 * @return 
	 */
	public JSONObject queryItems(Integer page_no, Integer pageSize,String isv_name,String app_name,String cust_account){
		return operationPlatformService.queryItems(page_no, pageSize, isv_name, app_name, cust_account);
	}
	/**
	 * 6.2　客户信息接口
	 * 根据账号查询账号信息
	 * @param cust_account
	 * @return
	 */
	public JSONObject queryCustomerInfo(String cust_account){
		return operationPlatformService.queryCustomerInfo(cust_account);
	}
	public static void main(String[] args) {
		AccountManageServiceImpl service=new AccountManageServiceImpl();
		service.queryItems(1, 5, "蓝精灵", "琪琪棠应用", "tangtangqi");
	}
}
